#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QDateTime>
#include <QTimer>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    showTime();  //打开主界面时展示时间

    //创建对象
    this->labelEventFilter=new MainWindowLabelEventFilter();  //创建事件过滤器对象
    this->pageWeather=new WeatherWindow(this);  //创建天气页面对象
    this->pageMap=new MapWindow(this);  //创建地图页面对象
    this->pageVideo=new VideoWindow(this);  //创建视频页面对象
    this->pageMusic=new MusicWindow(this);  //创建音乐页面对象

    //绑定信号槽
    connect(this->labelEventFilter,&MainWindowLabelEventFilter::labelClicked,
            this,&MainWindow::turnPage);  //点击图标发送，页面跳转槽函数接收

    //安装事件过滤器
    ui->label_weather_icon->installEventFilter(labelEventFilter);  //天气
    ui->label_map_icon->installEventFilter(labelEventFilter);  //地图
    ui->label_video_icon->installEventFilter(labelEventFilter);  //视频
    ui->label_music_icon->installEventFilter(labelEventFilter);  //音乐
}

MainWindow::~MainWindow()
{
    delete ui;
}

//展示时间函数
void MainWindow::showTime()
{
    //获取当前时间
    QDateTime dateTime=QDateTime::currentDateTime();

    //转换时间格式
    QString time=dateTime.toString("HH:mm:ss");
    ui->label_time->setText(time);

    QString date=dateTime.toString("yyyy-MM-dd");
    ui->label_date->setText(date);

    //定时器，每隔1s获取一次时间
    QTimer *timer=new QTimer();
    connect(timer,&QTimer::timeout,this,&MainWindow::updateTime);
    timer->start(1000);  //1000ms
}

//更新时间槽函数
void MainWindow::updateTime()
{
    //获取当前时间
    QDateTime dateTime=QDateTime::currentDateTime();

    //转换时间格式
    QString time=dateTime.toString("HH:mm:ss");
    ui->label_time->setText(time);

    QString date=dateTime.toString("yyyy-MM-dd");
    ui->label_date->setText(date);
}

//页面跳转槽函数
void MainWindow::turnPage(QObject *watched)
{
    QString objName=watched->objectName();  //获取被点击图标的名称

    if(objName=="label_weather_icon")  //跳转天气页面
    {
        this->hide();
        this->pageWeather->show();
    }
    else if(objName=="label_map_icon")  //跳转地图页面
    {
        this->hide();
        this->pageMap->show();
    }
    else if(objName=="label_video_icon")  //跳转视频页面
    {
        this->hide();
        this->pageVideo->show();
    }
    else if(objName=="label_music_icon")  //跳转音乐页面
    {
        this->hide();
        this->pageMusic->show();
    }
}
